package com.aistar.util;

import com.alibaba.fastjson.JSONObject;

import java.net.URLEncoder;

public class Config {

    /**
     * url前半部分
     */
    public static final String BASE_URL = "https://openapi.miaodiyun.com/distributor/sendSMS";


    /**
     * 开发者注册后系统自动生成的账号，可在官网登录后查看-修改为自己的。
     */
    public static final String ACCOUNT_SID ="710bc1964250d70604654afa1601dcf5";

    /**
     * 开发者注册后系统自动生成的TOKEN，可在官网登录后查看-修改为自己的。
     */
    public static final String AUTH_TOKEN = "51b4d61a150fb8692fe96cd3a3f54c85";

    private static String accountSid =ACCOUNT_SID;
    /**
     * 响应数据类型, JSON或XML
     */
    public static final String RESP_DATA_TYPE = "json";
    private static String operation = "";//对应的API地址
    private static String rod=smsCode();   //生成一个随机验证码
    private static String smsContent = "您的短信验证码为"+rod+"，,2分钟内有效，若非本人操作请忽略。";



    //创建验证码
    public static String smsCode(){
        String random=(int)((Math.random()*9+1)*100000)+"";
        System.out.print("random验证码:"+random);
        return random;
    }

    //根据相应的手机号发送验证码
    public static String getCode(String userTel){
        String tmpSmsContent = null;
        try{                 //解码
            tmpSmsContent = URLEncoder.encode(smsContent,"UTF-8");
        }catch(Exception e){
            e.getMessage();
        }

        String url = Config.BASE_URL + operation;
        String body = "accountSid=" + accountSid + "&to=" + userTel + "&smsContent=" + tmpSmsContent
                + HttpUtil.createCommonParam();

        // 提交请求 result:状态码
        String result = HttpUtil.post(url, body);

        //(换行符) 剔除了平台无关性，写一次代码跑通在Linux上和Window上都能够运行。
        System.out.println("result:" + System.lineSeparator() + result);
        System.out.println(result.getClass());

        //字符串转json对象
        JSONObject jsonObject = JSONObject.parseObject(result);
        String respCode = jsonObject.getString("respCode");
        System.out.println(respCode);

        //反馈-00000状态码标识请求成功，rod:随机验证码
        String defaultRespCode=rod;
        if(defaultRespCode.equals(respCode)){
            return rod;
        }else{
            return defaultRespCode;
        }
    }
}

